// supply support for the conversion bewteen char* and symbol*
// use symbol* instead of char* to speed up the search in the hash table

typedef struct symbol symbol;

symbol* S_symbol(char* str); // the string pointed by 'str' must be allocated
                             // in the heap
char* S_name(symbol* sym); // return the pointer to the string corresponding 
                           // to 'sym'
void S_clear();
